package com.qf.myschool.service.impl;

import com.qf.myschool.dao.IStudentDao;
import com.qf.myschool.dao.impl.StudentDAOImpl;
import com.qf.myschool.entity.Student;
import com.qf.myschool.service.IStudentService;
import com.qf.myschool.tool.PageTool;
import com.qf.myschool.vo.LoginUserVo;

import java.util.List;

/**
*学生业务实现类
 * @version 1.0
 * @auth sx
 * @date 2020/3/30
 */
public class StudentServiceImpl implements IStudentService {
    /**
    *创建学生数据访问对象
    */
    IStudentDao stuDao=new StudentDAOImpl();

    /**
    *注册方法
    *@param stu1
    *@return int
    */
    @Override
    public int register(Student stu1) {
        return stuDao.register(stu1);
    }

    /**
     *学生登录
     *@param u1
     *@return int
     */
    @Override
    public int login(LoginUserVo u1) {
        return stuDao.login(u1);
    }

    /**
     *根据用户名查询学生信息
     *@param uname
     *@return Student
     */
    @Override
    public Student queryStudentByUname(String uname) {
        return stuDao.queryStudentByUname(uname);
    }

    /**
     *学生修改密码
     *@param name
     * @param  newPwd
     *@return int
     */
    @Override
    public int modifyPwd(String name, String newPwd) {
        return stuDao.modifyPwd(name,newPwd);
    }

    /**
     *学生修改信息
     *@param stu1
     *@return int
     */
    @Override
    public int modifyStudent(Student stu1) {
        return stuDao.modifyStudent(stu1);
    }

    /**
     *查询所有的学生信息
     *@return List<Student>
     */
    @Override
    public List<Student> queryStudent(PageTool p1, String currpage) {
        //当前页码
        if (currpage==null){//当第一次从首页跳转学生展示页时,默认页码是1
            p1.setCurrPage(1);
        }else{//点击页码,设置当前页码
            p1.setCurrPage(Integer.valueOf(currpage));
        }

        //每页显示的记录
        p1.setPageCount(5);
        //总记录数,调用dao层获得总记录数
        p1.setTotalCount(stuDao.queryTotalCount());
        //计算总页数
        if (p1.getTotalCount()%p1.getPageCount()==0){
            p1.setTotalPage(p1.getTotalCount()/p1.getPageCount());
        }else{
            p1.setTotalPage(p1.getTotalCount()/p1.getPageCount()+1);
        }
        //当前页起始记录数
        p1.setStart((p1.getCurrPage()-1)*p1.getPageCount());

        //调用dao层得到当前页的数据
        List<Student> stuList=stuDao.queryStudent(p1);
        //当前页没有数据,就显示上一页的数据.当前页的一条数据被删除后,只能显示上一页
        if(stuList.size()==0){
            //设置当前页页码
            p1.setCurrPage(Integer.valueOf(currpage)-1);
            //当前页起始记录数
            p1.setStart((p1.getCurrPage()-1)*p1.getPageCount());
            stuList=stuDao.queryStudent(p1);
        }

        return stuList;
    }

    /**
     *根据用户名删除学生信息
     *@param uname
     *@return int
     */
    @Override
    public int delStudentByName(String uname) {
        return stuDao.delStudentByName(uname);
    }

    /**
     *根据用户名查询用户信息
     *@param uname
     *@return java.lang.String
     */
    @Override
    public String isStudent(String uname) {
        //调用dao层根据用户名查询用户信息
        Student stu=stuDao.queryStudentByUname(uname);
        if (stu==null){
            return "0";
        }else{
            return "1";
        }
    }
}
